package com.xin.marcus.domain;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import javax.validation.constraints.NotNull;

import java.io.Serializable;

import java.math.BigDecimal;
import java.util.Date;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

/**
* 产品信息表
* @TableName b_loan_info
*/
public class BLoanInfo implements Serializable {

    /**
    * 
    */
    @NotNull(message="[]不能为空")
    @ApiModelProperty("")
    private Integer id;
    /**
    * 产品名称
    */
    @NotBlank(message="[产品名称]不能为空")
    @Size(max= 50,message="编码长度不能超过50")
    @ApiModelProperty("产品名称")
    @Length(max= 50,message="编码长度不能超过50")
    private String productName;
    /**
    * 产品利率
    */
    @NotNull(message="[产品利率]不能为空")
    @ApiModelProperty("产品利率")
    private BigDecimal rate;
    /**
    * 产品期限
    */
    @NotNull(message="[产品期限]不能为空")
    @ApiModelProperty("产品期限")
    private Integer cycle;
    /**
    * 产品发布时间
    */
    @NotNull(message="[产品发布时间]不能为空")
    @ApiModelProperty("产品发布时间")
    private Date releaseTime;
    /**
    * 产品类型 0新手宝，1优选产品，2散标产品
    */
    @NotNull(message="[产品类型 0新手宝，1优选产品，2散标产品]不能为空")
    @ApiModelProperty("产品类型 0新手宝，1优选产品，2散标产品")
    private Integer productType;
    /**
    * 产品编号
    */
    @NotBlank(message="[产品编号]不能为空")
    @Size(max= 50,message="编码长度不能超过50")
    @ApiModelProperty("产品编号")
    @Length(max= 50,message="编码长度不能超过50")
    private String productNo;
    /**
    * 产品金额
    */
    @NotNull(message="[产品金额]不能为空")
    @ApiModelProperty("产品金额")
    private BigDecimal productMoney;
    /**
    * 产品剩余可投金额
    */
    @NotNull(message="[产品剩余可投金额]不能为空")
    @ApiModelProperty("产品剩余可投金额")
    private BigDecimal leftProductMoney;
    /**
    * 最低投资金额，即起投金额
    */
    @NotNull(message="[最低投资金额，即起投金额]不能为空")
    @ApiModelProperty("最低投资金额，即起投金额")
    private BigDecimal bidMinLimit;
    /**
    * 最高投资金额，即最多能投多少金额
    */
    @NotNull(message="[最高投资金额，即最多能投多少金额]不能为空")
    @ApiModelProperty("最高投资金额，即最多能投多少金额")
    private BigDecimal bidMaxLimit;
    /**
    * 产品状态（0未满标，1已满标，2满标已生成收益计划）
    */
    @NotNull(message="[产品状态（0未满标，1已满标，2满标已生成收益计划）]不能为空")
    @ApiModelProperty("产品状态（0未满标，1已满标，2满标已生成收益计划）")
    private Integer productStatus;
    /**
    * 产品投资满标时间
    */
    @ApiModelProperty("产品投资满标时间")
    private Date productFullTime;
    /**
    * 产品描述
    */
    @NotBlank(message="[产品描述]不能为空")
    @Size(max= 50,message="编码长度不能超过50")
    @ApiModelProperty("产品描述")
    @Length(max= 50,message="编码长度不能超过50")
    private String productDesc;

    /**
    * 
    */
    private void setId(Integer id){
    this.id = id;
    }

    /**
    * 产品名称
    */
    private void setProductName(String productName){
    this.productName = productName;
    }

    /**
    * 产品利率
    */
    private void setRate(BigDecimal rate){
    this.rate = rate;
    }

    /**
    * 产品期限
    */
    private void setCycle(Integer cycle){
    this.cycle = cycle;
    }

    /**
    * 产品发布时间
    */
    private void setReleaseTime(Date releaseTime){
    this.releaseTime = releaseTime;
    }

    /**
    * 产品类型 0新手宝，1优选产品，2散标产品
    */
    private void setProductType(Integer productType){
    this.productType = productType;
    }

    /**
    * 产品编号
    */
    private void setProductNo(String productNo){
    this.productNo = productNo;
    }

    /**
    * 产品金额
    */
    private void setProductMoney(BigDecimal productMoney){
    this.productMoney = productMoney;
    }

    /**
    * 产品剩余可投金额
    */
    private void setLeftProductMoney(BigDecimal leftProductMoney){
    this.leftProductMoney = leftProductMoney;
    }

    /**
    * 最低投资金额，即起投金额
    */
    private void setBidMinLimit(BigDecimal bidMinLimit){
    this.bidMinLimit = bidMinLimit;
    }

    /**
    * 最高投资金额，即最多能投多少金额
    */
    private void setBidMaxLimit(BigDecimal bidMaxLimit){
    this.bidMaxLimit = bidMaxLimit;
    }

    /**
    * 产品状态（0未满标，1已满标，2满标已生成收益计划）
    */
    private void setProductStatus(Integer productStatus){
    this.productStatus = productStatus;
    }

    /**
    * 产品投资满标时间
    */
    private void setProductFullTime(Date productFullTime){
    this.productFullTime = productFullTime;
    }

    /**
    * 产品描述
    */
    private void setProductDesc(String productDesc){
    this.productDesc = productDesc;
    }


    /**
    * 
    */
    private Integer getId(){
    return this.id;
    }

    /**
    * 产品名称
    */
    private String getProductName(){
    return this.productName;
    }

    /**
    * 产品利率
    */
    private BigDecimal getRate(){
    return this.rate;
    }

    /**
    * 产品期限
    */
    private Integer getCycle(){
    return this.cycle;
    }

    /**
    * 产品发布时间
    */
    private Date getReleaseTime(){
    return this.releaseTime;
    }

    /**
    * 产品类型 0新手宝，1优选产品，2散标产品
    */
    private Integer getProductType(){
    return this.productType;
    }

    /**
    * 产品编号
    */
    private String getProductNo(){
    return this.productNo;
    }

    /**
    * 产品金额
    */
    private BigDecimal getProductMoney(){
    return this.productMoney;
    }

    /**
    * 产品剩余可投金额
    */
    private BigDecimal getLeftProductMoney(){
    return this.leftProductMoney;
    }

    /**
    * 最低投资金额，即起投金额
    */
    private BigDecimal getBidMinLimit(){
    return this.bidMinLimit;
    }

    /**
    * 最高投资金额，即最多能投多少金额
    */
    private BigDecimal getBidMaxLimit(){
    return this.bidMaxLimit;
    }

    /**
    * 产品状态（0未满标，1已满标，2满标已生成收益计划）
    */
    private Integer getProductStatus(){
    return this.productStatus;
    }

    /**
    * 产品投资满标时间
    */
    private Date getProductFullTime(){
    return this.productFullTime;
    }

    /**
    * 产品描述
    */
    private String getProductDesc(){
    return this.productDesc;
    }

}
